//自动补全
$( "#autocomplete" ).autocomplete({
    source: function( request, response ) {
        var hosts = ["qq.com", "163.com","sohu.com","yahoo.cn","263.com", "sina.com.cn","yahoo.com.cn","gmail.com", "hotmail.com"];//邮箱域名集合

        var term = request.term; //获取用户输入的内容；
        var name = term;  //邮箱的用户名
        var host = "";   //邮箱的域名 例如qq.com
        var ix = term.indexOf('@'); //@的位置

        var result = []; //最终呈现的邮箱列表



        //当用户输入的数据（email）里存在@的时候，就重新给用户名和域名赋值

        if (ix > -1) { //如果@符号存在，就表示用户已经输入用户名了。
            name = term.slice(0, ix);
            host = term.slice(ix + 1);
        }

        if (name) { //如果name有值 即：不为空
            //如果用户已经输入@和后面的全部或部分域名，那么就找到相关的域名提示，比如abc@1 就提示abc@163.com
            //如果用户还没有输入@或后面的域名。那么就把所有的域名都提示出来

            var getHosts = []; //根据用户名填写的域名我们在hosts里面找到对应的域名集合

            if (host) { //并且host也有值的时候
                getHosts = $.grep(hosts, function (val, key) { // 给getHosts赋值
                    if (val.indexOf(host) > -1) {
                        return val;
                    };
                });
            }
            else {
                getHosts = hosts;
            }


            var abc = $.map(getHosts, function (val) { //这个val就是getHosts里的每个域名元素。
                return name + "@" + val;
            });


            //  result.push(term);//假如我只定义了qq.com，和163.com这两个邮箱列表，那么在用户输入其他的邮箱的时候我也有提示的功能，比如我在输入abc@yahoo.cn的时候，我也有提示的功能。 这时候，我就需要将用户输入的数据添加到result这个邮箱域名集合当中

            result = result.concat(abc);//然后再将abc这个集合也加入到result当中 形成一个新的数组然后赋值给result

        }

        //result.push(term); //或者这样也行，不过这样的话用term就在数组里面的位置就是最后一个了。提示的时候也就在最后一个了。我们一般想让它显示在第一个

        //result.unshift(term); //或者这样也行; unshift方法的作用是：将一个或多个新元素添加到数组开始，数组中的元素自动后移，返回数组新长度

        response(result);

    }
});

//查看密码
$('.look-pwd').click(function () {
    if($(this).find("span").hasClass('glyphicon-eye-close')){
        $(this).find("span").removeClass('glyphicon-eye-close');
        $(this).find("span").addClass('glyphicon-eye-open');
        var pwd = $('input[name="password"]').val();
        $('input[name="password"]').attr("type","text");
        $('input[name="password"]').val(pwd);
    }else{
        $(this).find("span").removeClass('glyphicon-eye-open');
        $(this).find("span").addClass('glyphicon-eye-close');
        var pwd =  $('input[name="password"]').val();
        $('input[name="password"]').attr("type","password");
        $('input[name="password"]').val(pwd);
    }
});


function isEmail(str) {
    var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
    return  reg.test(str);
}

function isNumber() {
    var reg = /^[0-9]*$/;
    return  reg.test(str);
}


function showModel(id){
    $(".modal").modal('hide')
    $("#"+id).modal('show');  //手动开启
}

function check(level=1) {
    var user_name = $('input[name="user_name"]').val();
    var email =$('input[name="email"]').val();
    if(!user_name || user_name.length < 3){
        $(".user_name-error-msg").empty().append("用户名不能为空且长度不得小于3位！");
        return false;
    }else{
        $(".user_name-error-msg").empty();
    }
    if(!email || !isEmail(email)){
        $(".email-error-msg").empty().append("请填写正确的邮箱地址！");
        return false;
    }else{
        $(".email-error-msg").empty();
    }
    var password =$('input[name="password"]').val();
    var code =$('input[name="code"]').val();
    if(level > 1){
        if(!password || password.length >= 6){
            $(".password-error-msg").empty().append("密码不能为空且长度不得小于6位！");
            return false;
        }else{
            $(".password-error-msg").empty();
        }

        if(!code || !isNumber(code)|| code.length != 6){
            $(".code-error-msg").empty().append("验证码必须是6位数字！");
            return false;
        }else{
            $(".code-error-msg").empty();
        }
    }
    return  true;
}



function sendEmailCode(e) {
    //校验
    if($(e).attr("disabled") == "disabled"){
        return false;
    }
    if(!check(1)){
        return  false;
    }
    var time=60;
    var timeId= setInterval(function () {
        if(time < 1){
            $(e).css("background-color","#666666")
            $(e).css("border","#666666")
            $(e).removeClass('disabled');
            $(e).removeAttr("disabled")
            $(e).empty().html("发送验证码")
            clearInterval(timeId);
        }else{
            time--;
            $(e).css("background-color","lightgray")
            $(e).css("border","lightgray")
            $(e).addClass('disabled');
            $(e).attr("disabled", true)
            $(e).empty().html(time+"秒后重发")
        }
    },1000);

    var data={};
    data['email'] = $('input[name="email"]').val();
    data['user_name'] =$('input[name="user_name"]').val();
    $.ajax({
        //请求方式
        type : "POST",
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        //请求地址
        url : "/sendEmailCode",
        //数据，json字符串
        data : data,
        //请求成功
        success : function(result) {
            console.log(result);
        },
        //请求失败，包含具体的错误信息
        error : function(e){
            console.log(e.status);
            console.log(e.responseText);
        }
    });

}
